The value of 'tos' at the check might already be on the last element,
so triggering stack expansion on the second last element is too late.
Change-Id: Ib3ab2662d4d27a71effe9e988b9e172923af2908 Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Gbp-Pq: Name cve_2018-15518.patch
This patch was originally introduced [1] and rebased [2] in Ubuntu Trusty [3].
Some chunks were changed/removed on Debian:
- The DPKG_ARCH / UNAME_MACHINE mapping is actually Debian-specific, and done
in another patch; so this chunk is now there.
- The 'PLATFORM=qws/linux-*-g++' setting is not required; ppc64el builds fine
with the default 'linux-generic-g++' (the difference to the previously set
'linux-x86_64-g++' is just '-m64', which is default/only-option on ppc64el).
Currently, the generated documentation includes a search box which relies on an
external search service, and which does not work for local usage. Therefore, the
generated search box does not work and confuses users, so it is best to build
the documentation in offline format which does not include the search box, but
does also not confuse users.
workaround FTBFS on powerpc/gcc 4.6 in signalsloteditor
This should workaround g++-4.6/powerpc ICE that is related to dwarf2 [1][2].
It is very likely the patch will not be needed long term as the gcc bug might
eventually be fixed.
[1] .moc/release-shared/qteditorfactory.moc:237:1: internal compiler error: in size_of_die, at dwarf2out.c:10749
Please submit a full bug report,
with preprocessed source if appropriate.
Fix monotonic clock detection on kFreeBSD at configure time. This will finally
enable it in QElapsedTimer.
QProcess::waitForFinished() and all other qt_safe_select() users cannot safely
operate without monotonic clock because qt_safe_select() will indicate timeout
earlier than it is supposed when underlying select() call is interrupted
(errno=EINTR).
~1/1000 when run in a row. Hopefully, this will make failures rare enough
not to cause FTBFSes.
Degradation in performance should not be very significant and is acceptable.
Author: Modestas Vainius <modax@debian.org>
Author: Fathi Boudra <fabo@debian.org>
Forwarded: not-needed
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=561203
Origin: vendor
Last-Update: 2011-12-26
Gbp-Pq: Name 99_hppa_bug561203_decrease_failure_rate.diff
Restore QtCore ABI compatibility with binaries built with g++ 4.3 on armel Once Qt is rebuilt with g++ 4.4, it becomes ABI incompatible with binaries built with g++ 4.3 on armel. That's because g++ 4.4 mangles va_list differently on armel. As a result, affected symbols are those which have va_list type in their argument list. Qt exports 2 such symbols: . qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); QString &QString::vsprintf(const char* cformat, va_list ap); . The patch uses .symver assembler directive to add aliases for the symbols above. Those aliases are mangled in the same way as g++ 4.3 would mangle original symbols.
Permit loading plugins built with future major Qt releases (4.x)
This check is too paranoid for us because it prevents from using symbol files
in full potential. Fine-grained package level dependencies should ensure that
the required version of the Qt Library is installed which might not necessarily
be the latest Qt 4.x the plugin was built against because the plugin actually
did not use any of new symbols in the Qt Library.
However, removal of this check might still increase likelihood of crashes when:
1) loading a new incompatible version of plugin into a running process still
using an old Qt Library. This might happen right after upgrade;
2) user tries to load incompatible non-packaged plugin;
but it's an acceptable compromise. Here we trade more bullet proof protection
from rare user faults or weird system misconfigurations for more flexibility,
installability and expand of forward binary compatibility beyond the same Qt
4.x whenever possible.
Gbp-Pq: Name 23_permit_plugins_built_with_future_qt.diff
set sane timestamps when generating header symlinks for non-existing headers
This is particularly important for QtCore/QtConfig symlink because typically
qconfig.h does not exist when syncqt is run by ./configure. So instead of
assigning a modification timestamp equal to the epoch (00:00 January 1, 1970
GMT.) for the symlink, just use current time().
Gbp-Pq: Name 02_syncqt_sane_timestamp_for_nonexisting_headers.diff
Robert Knight [Sun, 20 Apr 2008 14:28:31 +0000 (16:28 +0200)]
When tabs are inserted or removed in a QTabBar, QTabBarPrivate::refresh() is called to update the layout. If the tabbar widget is hidden, this just sets a boolean variable (layoutDirty) and returns, so the parent widget's layout is not notified about the possible geometry change.
Prior to Qt 4.4 this was not a problem because the geometry was
recalculated in QTabBar::sizeHint() if the layoutDirty variable was
set. In Qt 4.4 however the layout caches size hint information in
QWidgetItemV2. Since the cache information is not invalidated, the
layout may end up using out-of-date size hint information to compute
the widget size.
If the QTabBar is empty when QTabBar::sizeHint() is called, it will
return a size with a height of 0, which will be kept in the cache and
so the tab bar will never be shown.
This patch fixes the problem by calling updateGeometry() whenever the
tab bar's layout is refreshed.
qt-bugs@ issue : 208185
Trolltech task ID : 208349
bugs.kde.org number : 159014
Gbp-Pq: Name 0225-invalidate-tabbar-geometry-on-refresh.patch
Lubos Lunak [Tue, 2 Oct 2007 14:08:32 +0000 (16:08 +0200)]
This patch makes override-redirect windows (popup menu, dropdown menu, tooltip, combobox, etc.) also have more window properties like WM_CLASS, so they can be used when compositing.
This patch is known to not be the most correct way
to implement them, as it seems to be possible to do it in a faster way,
but should work non the less until we can provide something better.
The detection needs to go before arm, else the system will detect AArch64/arm64
as arm.
This patch comes from Wookey, he has agreed to put it under BSD or Expat
to allow it's inclusion in here:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#255>
Eirik Aavitsland [Wed, 11 Mar 2015 08:00:41 +0000 (09:00 +0100)]
Fixes crash in gif image decoder
Fuzzing test revealed that for certain malformed gif files,
qgifhandler would segfault.
Change-Id: I5bb6f60e1c61849e0d8c735edc3869945e5331c1
(cherry picked from qtbase/ea2c5417fcd374302f5019e67f72af5facbd29f6) Reviewed-by: Richard J. Moore <rich@kde.org>
Gbp-Pq: Name fixes_crash_in_gif_image_decoder.patch
Eirik Aavitsland [Wed, 11 Mar 2015 12:34:01 +0000 (13:34 +0100)]
Fixes crash in bmp and ico image decoding
Fuzzing test revealed that for certain malformed bmp and ico files,
the handler would segfault.
Change-Id: I19d45145f31e7f808f7f6a1a1610270ea4159cbe
(cherry picked from qtbase/2adbbae5432aa9d8cc41c6fcf55c2e310d2d4078) Reviewed-by: Richard J. Moore <rich@kde.org>
Gbp-Pq: Name fixes_crash_in_bmp_and_ico_image_decoder.patch
Lars Knoll [Thu, 24 Apr 2014 13:33:27 +0000 (15:33 +0200)]
Don't crash on broken GIF images
Broken GIF images could set invalid width and height
values inside the image, leading to Qt creating a null
QImage for it. In that case we need to abort decoding
the image and return an error.
Initial patch by Rich Moore.
Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5
Owen W. Taylor [Mon, 17 Oct 2011 21:27:43 +0000 (17:27 -0400)]
Fix logic for figuring out what ConfigureNotify positions can be trusted
When reading ahead in the queue for ConfigureNotify events, it's necessary
to look for intermediate ReparentNotify events as well, since they will
determine whether the position in the event can be trusted or not.
from QT_USE_DRAG_DISTANCE environment variable.
See also http://bugreports.qt.nokia.com/browse/QTBUG-12594
Author: Joonas Tanskanen <joonas.tanskanen@sasken.com>
Gbp-Pq: Name Add_support_for_QT_USE_DRAG_DISTANCE_env_var.patch
* Non-maintainer upload by the LTS team.
* CVE-2018-15518: Fix a double-free or corruption during parsing
of a specially crafted illegal XML document.
* CVE-2018-19870: A malformed GIF image might have caused a NULL
pointer dereference in QGifHandler resulting in a segmentation fault.
* CVE-2018-19873: QBmpHandler had a buffer overflow via BMP data.
* CVE-2018-19871: TGA handler: check for out of range image size
Make the decoder fail early to avoid spending time and memory on
attempting to decode a corrupt image file.
* CVE-2018-19869: Fix crash when parsing malformed url reference, The
parsing did not check for end of input.
This patch was originally introduced [1] and rebased [2] in Ubuntu Trusty [3].
Some chunks were changed/removed on Debian:
- The DPKG_ARCH / UNAME_MACHINE mapping is actually Debian-specific, and done
in another patch; so this chunk is now there.
- The 'PLATFORM=qws/linux-*-g++' setting is not required; ppc64el builds fine
with the default 'linux-generic-g++' (the difference to the previously set
'linux-x86_64-g++' is just '-m64', which is default/only-option on ppc64el).
Currently, the generated documentation includes a search box which relies on an
external search service, and which does not work for local usage. Therefore, the
generated search box does not work and confuses users, so it is best to build
the documentation in offline format which does not include the search box, but
does also not confuse users.
Modestas Vainius [Sun, 14 Jun 2015 16:38:43 +0000 (16:38 +0000)]
workaround FTBFS on powerpc/gcc 4.6 in signalsloteditor
This should workaround g++-4.6/powerpc ICE that is related to dwarf2 [1][2].
It is very likely the patch will not be needed long term as the gcc bug might
eventually be fixed.
[1] .moc/release-shared/qteditorfactory.moc:237:1: internal compiler error: in size_of_die, at dwarf2out.c:10749
Please submit a full bug report,
with preprocessed source if appropriate.
Modestas Vainius [Sun, 14 Jun 2015 16:38:43 +0000 (16:38 +0000)]
Fix monotonic clock detection on kFreeBSD
Fix monotonic clock detection on kFreeBSD at configure time. This will finally
enable it in QElapsedTimer.
QProcess::waitForFinished() and all other qt_safe_select() users cannot safely
operate without monotonic clock because qt_safe_select() will indicate timeout
earlier than it is supposed when underlying select() call is interrupted
(errno=EINTR).
~1/1000 when run in a row. Hopefully, this will make failures rare enough
not to cause FTBFSes.
Degradation in performance should not be very significant and is acceptable.
Author: Modestas Vainius <modax@debian.org>
Author: Fathi Boudra <fabo@debian.org>
Forwarded: not-needed
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=561203
Origin: vendor
Last-Update: 2011-12-26
Gbp-Pq: Name 99_hppa_bug561203_decrease_failure_rate.diff
Modestas Vainius [Sun, 14 Jun 2015 16:38:43 +0000 (16:38 +0000)]
Restore QtCore ABI compatibility with binaries built with g++ 4.3 on armel Once Qt is rebuilt with g++ 4.4, it becomes ABI incompatible with binaries built with g++ 4.3 on armel. That's because g++ 4.4 mangles va_list differently on armel. As a result, affected symbols are those which have va_list type in their argument list. Qt exports 2 such symbols: . qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); QString &QString::vsprintf(const char* cformat, va_list ap); . The patch uses .symver assembler directive to add aliases for the symbols above. Those aliases are mangled in the same way as g++ 4.3 would mangle original symbols.
Modestas Vainius [Sun, 14 Jun 2015 16:38:43 +0000 (16:38 +0000)]
Permit loading plugins built with future major Qt releases (4.x)
This check is too paranoid for us because it prevents from using symbol files
in full potential. Fine-grained package level dependencies should ensure that
the required version of the Qt Library is installed which might not necessarily
be the latest Qt 4.x the plugin was built against because the plugin actually
did not use any of new symbols in the Qt Library.
However, removal of this check might still increase likelihood of crashes when:
1) loading a new incompatible version of plugin into a running process still
using an old Qt Library. This might happen right after upgrade;
2) user tries to load incompatible non-packaged plugin;
but it's an acceptable compromise. Here we trade more bullet proof protection
from rare user faults or weird system misconfigurations for more flexibility,
installability and expand of forward binary compatibility beyond the same Qt
4.x whenever possible.
Gbp-Pq: Name 23_permit_plugins_built_with_future_qt.diff